#!/bin/bash

#功能: 介绍几种shell中循环遍历的方法, [ ]前后必须有空格


#1. 算数比较
x=1
[ $x -eq 1 ] && echo "$x = 1" #相等
[ $x -gt 0 ] && echo "$x > 0" #大于
[ $x -lt 2 ] && echo "$x < 2" #小于
[ $x -le 1 ] && echo "$x <= 1" #小于等于
[ $x -ge 1 ] && echo "$x >= 1" #大于等于
[ $x -ne 2 ] && echo "$x != 2" #不等
[ $x -ne 2 -a $x -ne 3 ] && echo "$x != 2 && $x != 3" #-a相当于&&
[ $x -ne 2 -o $x -ne 1 ] && echo "$x != 1 || $x != 2" #-a相当于||

#2. 文件测试
filename="/etc/passwd"
[ -f $filename ] #文件存在并且是普通文件
[ -x $filename ] #文件存在并且具有执行权限
[ -d $filename ] #文件存在并且是目录文件
[ -e $filename ] #文件存在

if [ -e $filename ]; then
    echo "$filename exit"
else
    echo "$filename not exit"
fi

#3. 字符串比较
##备注: 字符串比较最好使用[[]], 因为如果是单[], 如果其中一个字符串为空会报错
str1="hello"
str2="hello"
if [[ $str1 == $str2 ]]; then #=和==都可以
    echo "$str1 = $str2"
else
    echo "$str1 != $str2"
fi

if [[ $str1 != $str2 ]]; then #=和==都可以
    echo "$str1 != $str2"
else
    echo "$str1 = $str2"
fi

# 比较字符串的字母顺序
str3="hello"
str4="world"
if [[ $str3 > $str4 ]]; then
    echo "$str3 > $str4"
else
    echo "$str3 <= $str4"
fi

#字符串判空
str5=1
if [[ -z $str5 ]]; then #-n字符串非空
    echo "$str5 len 0"
else
    echo "$str5 len > 0"
fi

#多条件判断
str5="/etc/passwd"
if [[ -n $str5 ]] && [ -e $str5 ]; then 
    echo "$str5 exit"
else
    echo "$str5 not exit"
fi